package com.smartinput.sync.application.dto

import jakarta.validation.constraints.NotBlank
import jakarta.validation.constraints.NotNull

data class TextPushRequest(
    @field:NotBlank(message = "源设备ID不能为空")
    val sourceDeviceId: String,
    
    @field:NotBlank(message = "目标设备ID不能为空")
    val targetDeviceId: String,
    
    @field:NotBlank(message = "内容不能为空")
    val content: String
)

data class TextPushResponse(
    val success: Boolean
)

data class TextPushAllRequest(
    @field:NotBlank(message = "源设备ID不能为空")
    val sourceDeviceId: String,
    
    @field:NotBlank(message = "内容不能为空")
    val content: String
)

data class TextPushAllResponse(
    val results: List<TextPushResult>
)

data class TextPushResult(
    val deviceId: String,
    val success: Boolean,
    val message: String
)

data class TextReceivedNotification(
    @field:NotBlank(message = "目标设备ID不能为空")
    val targetDeviceId: String,
    
    @field:NotBlank(message = "内容不能为空")
    val content: String,
    
    @field:NotBlank(message = "源设备ID不能为空")
    val sourceDeviceId: String
) 